package maMetrics;

import com.telelogic.rhapsody.core.IRPAttribute;
import com.telelogic.rhapsody.core.IRPClass;
import com.telelogic.rhapsody.core.IRPInterfaceItem;
import com.telelogic.rhapsody.core.IRPOperation;
import com.telelogic.rhapsody.core.IRPPackage;
import com.telelogic.rhapsody.core.IRPProject;

public interface MetricsInterface {
	//Need to implement
	//private MetricCfg;
	//private DefaultCfg
	
	public boolean isApplyToProj();
	public boolean isApplyToPkg();
	public boolean isApplyToCls();
	public boolean isApplyToItf();
	public boolean isApplyToOp();
	public boolean isApplyToAttr();
	public boolean isLogRawData();
	public void finish();
	
	public int applyInProj(IRPProject proj);
	public int applyInPkg(IRPPackage pkg);
	public int applyInCls(IRPClass cls);
	public int applyInItf(IRPInterfaceItem itf);
	public int applyInOp(IRPOperation op);
	public int applyInAttr(IRPAttribute attrb);
	
	public void getLocalCfg(String str);
	public void getGlobalCfg();
	
	public float getWeightedValue(int n);
	
	/**
	 * Get the range of the value
	 * if return 0 -- lower than green
	 * if return 1 -- Green
	 * if return 2 -- Yellow
	 * if return 3 -- Red
	 * if return -1 -- error
	 * */
	public int getRange(int n);
	

}
